{
 "cells": [
  {
   "cell_type": "markdown",
   "source": [
    "# 介绍\n",
    "softmax层的输出，除了正例之外，**负标签也带有大量的信息**，比如某些负标签对应的概率远远大于其他负标签。而在传统的训练过程(hard target)中，所有负标签都被统一对待。也就是说，**KD的训练方式使得每个样本给Net-S带来的信息量大于传统的训练方式。**\n",
    "## softmax函数\n",
    "原始的softmax函数：\n",
    "\n",
    "$\\frac{exp(z_i)}{\\sum exp(z_j)}$\n",
    "\n",
    "但要是直接使用softmax层的输出值作为soft target, 这又会带来一个问题: *当softmax输出的概率分布熵相对较小时，负标签的值都很接近0，对损失函数的贡献非常小*，小到可以忽略不计。因此\"温度\"这个变量就派上了用场。\n",
    "\n",
    "$\\frac{exp(z_i/T)}{\\sum exp(z_j/T)}$\n",
    "\n",
    "原来的softmax函数是T = 1的特例。 T越高，softmax的output probability distribution越趋于平滑，其分布的熵越大，负标签携带的信息会被相对地放大，模型训练将更加关注负标签。\n",
    "## 损失函数"
   ],
   "metadata": {}
  }
 ],
 "metadata": {
  "orig_nbformat": 4,
  "language_info": {
   "name": "python"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}